﻿Imports Microsoft.Reporting.WebForms

Public Class Reportes
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            'Session("usuarioId") = 1
            'Session("profesion") = "123"
            'Session("nombre") = "123"
            If Session("usuarioId") Is Nothing Then
                Response.Redirect("loguin.aspx")
            End If
            If Not IsPostBack Then
                Carga_participantes()
                lbprofesion.Text = Session("profesion").ToString()
                lbnombre.Text = Session("nombre").ToString()
            End If
        Catch ex As Exception
            Response.Write(ex.Message)
        End Try
    End Sub

    Protected Sub Btn_consultar_Click(sender As Object, e As EventArgs) Handles Btn_consultar.Click
        Try
            Dim rds As ReportDataSource = New ReportDataSource
            rds.Name = "DataSet1"
            RV_General.LocalReport.DataSources.Clear()
            RV_General.LocalReport.ReportPath = "Reporte1.rdlc"
            rds.DataSourceId = "Ods_reporte"
            Ods_reporte.FilterExpression = parametros()
            RV_General.LocalReport.DataSources.Add(rds)
            RV_General.LocalReport.SetParameters(New ReportParameter("SrutaServer", Server.MapPath("~/images_perfil/"), True))
            RV_General.LocalReport.EnableExternalImages = True
            RV_General.LocalReport.Refresh()
        Catch ex As Exception

        End Try
    End Sub

    Private Function parametros() As String
        Try
            Dim Spara As String = "participanteId=" & Ddl_participante.SelectedValue

            If Ddl_fecha_S.SelectedValue <> "" Then
                Spara = Spara & " AND fechaS='" & Ddl_fecha_S.SelectedItem.Text & "'"
            End If
            If Ddl_fecha_MG.SelectedValue <> "" Then
                Spara = Spara & " AND fechaMG='" & Ddl_fecha_MG.SelectedItem.Text & "'"
            End If
            If Ddl_fecha_TOC.SelectedValue <> "" Then
                Spara = Spara & " AND fechaTOC='" & Ddl_fecha_TOC.SelectedItem.Text & "'"
            End If
            If Ddl_fecha_PS.SelectedValue <> "" Then
                Spara = Spara & " AND fechaPS='" & Ddl_fecha_PS.SelectedItem.Text & "'"
            End If
            If Ddl_fecha_nu.SelectedValue <> "" Then
                Spara = Spara & " AND fechaNU='" & Ddl_fecha_nu.SelectedItem.Text & "'"
            End If
            Return Spara
        Catch ex As Exception
            Return ""
        End Try
    End Function

    Private Sub Carga_participantes(Optional ByVal filter As String = "")
        Try
            Dim Partici As Object
            Ddl_fecha_MG.Items.Clear()
            Ddl_fecha_nu.Items.Clear()
            Ddl_fecha_PS.Items.Clear()
            Ddl_fecha_S.Items.Clear()
            Ddl_fecha_TOC.Items.Clear()
            If filter <> "" Then
                Partici = From t In dbCat.reporte1 From m In dbCat.participantes _
                          Where t.participanteId = m.participanteId And (t.primerApellido.Contains(filter) Or t.segundoApellido.Contains(filter) Or t.primerNombre.Contains(filter) Or t.segundoNombre.Contains(filter))
            Select t.participanteId, name = t.primerApellido & " " & t.segundoApellido & " " & t.primerNombre & " " & t.segundoNombre Distinct
            Else
                Partici = From t In dbCat.reporte1 From m In dbCat.participantes _
                          Where t.participanteId = m.participanteId
            Select t.participanteId, name = t.primerApellido & " " & t.segundoApellido & " " & t.primerNombre & " " & t.segundoNombre Distinct
            End If
            Ddl_participante.DataTextField = "name"
            Ddl_participante.DataValueField = "participanteId"
            Ddl_participante.DataSource = Partici
            Ddl_participante.DataBind()
            Ddl_participante.Items.Insert(0, seleccione())
        Catch ex As Exception

        End Try
    End Sub

    Protected Sub Ddl_participante_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Ddl_participante.SelectedIndexChanged
        Try
            If Ddl_participante.SelectedValue <> "" Then
                Carga_Fecha_salud(Ddl_participante.SelectedValue)
                Carga_Fecha_MG(Ddl_participante.SelectedValue)
                Carga_Fecha_PS(Ddl_participante.SelectedValue)
                Carga_Fecha_TOC(Ddl_participante.SelectedValue)
                Carga_Fecha_NU(Ddl_participante.SelectedValue)
            Else
                Ddl_fecha_MG.Items.Clear()
                Ddl_fecha_nu.Items.Clear()
                Ddl_fecha_PS.Items.Clear()
                Ddl_fecha_S.Items.Clear()
                Ddl_fecha_TOC.Items.Clear()
            End If
        Catch ex As Exception

        End Try
    End Sub

    Private Sub Carga_Fecha_salud(ByVal IdParti As Integer)
        Try
            Dim Filtro = From t In dbCat.reporte1 From m In dbCat.participantes _
                         Where t.participanteId = m.participanteId And t.participanteId = IdParti And t.fechaS IsNot Nothing
            Select IdValue = t.fechaS, t.fechaS Distinct

            Ddl_fecha_S.DataTextField = "fechaS"
            Ddl_fecha_S.DataValueField = "IdValue"
            Ddl_fecha_S.DataSource = Filtro
            Ddl_fecha_S.DataBind()
            If IsNothing(Filtro.First.fechaS) Then
                RV_S.Enabled = False
            Else
                Ddl_fecha_S.Items.Insert(0, seleccione())
                RV_S.Enabled = True
            End If
        Catch ex As Exception
            RV_S.Enabled = False
        End Try
    End Sub

    Private Sub Carga_Fecha_MG(ByVal IdParti As Integer)
        Try
            Dim Filtro = From t In dbCat.reporte1 From m In dbCat.participantes _
                         Where t.participanteId = m.participanteId And t.participanteId = IdParti And t.fechaMG IsNot Nothing
            Select IdValue = t.fechaMG, t.fechaMG Distinct

            Ddl_fecha_MG.DataTextField = "fechaMG"
            Ddl_fecha_MG.DataValueField = "IdValue"
            Ddl_fecha_MG.DataSource = Filtro
            Ddl_fecha_MG.DataBind()
            If IsNothing(Filtro.First.fechaMG) Then
                RV_MG.Enabled = False
            Else
                Ddl_fecha_MG.Items.Insert(0, seleccione())
                RV_MG.Enabled = True
            End If
        Catch ex As Exception
            RV_MG.Enabled = False
        End Try
    End Sub

    Private Sub Carga_Fecha_PS(ByVal IdParti As Integer)
        Try
            Dim Filtro = From t In dbCat.reporte1 From m In dbCat.participantes _
                         Where t.participanteId = m.participanteId And t.participanteId = IdParti And t.fechaPS IsNot Nothing
            Select IdValue = t.fechaPS, t.fechaPS Distinct

            Ddl_fecha_PS.DataTextField = "fechaPS"
            Ddl_fecha_PS.DataValueField = "IdValue"
            Ddl_fecha_PS.DataSource = Filtro
            Ddl_fecha_PS.DataBind()
            If IsNothing(Filtro.First.fechaPS) Then
                RV_PS.Enabled = False
            Else
                Ddl_fecha_PS.Items.Insert(0, seleccione())
                RV_PS.Enabled = True
            End If
        Catch ex As Exception
            RV_PS.Enabled = False
        End Try
    End Sub

    Private Sub Carga_Fecha_TOC(ByVal IdParti As Integer)
        Try
            Dim Filtro = From t In dbCat.reporte1 From m In dbCat.participantes _
                         Where t.participanteId = m.participanteId And t.participanteId = IdParti And t.fechaTOC IsNot Nothing
            Select IdValue = t.fechaTOC, t.fechaTOC Distinct

            Ddl_fecha_TOC.DataTextField = "fechaTOC"
            Ddl_fecha_TOC.DataValueField = "IdValue"
            Ddl_fecha_TOC.DataSource = Filtro
            Ddl_fecha_TOC.DataBind()
            If IsNothing(Filtro.First.fechaTOC) Then
                RV_TOC.Enabled = False
            Else
                Ddl_fecha_TOC.Items.Insert(0, seleccione())
                RV_TOC.Enabled = True
            End If
        Catch ex As Exception
            RV_TOC.Enabled = False
        End Try
    End Sub

    Private Sub Carga_Fecha_NU(ByVal IdParti As Integer)
        Try
            Dim Filtro = From t In dbCat.reporte1 From m In dbCat.participantes _
                         Where t.participanteId = m.participanteId And t.participanteId = IdParti And t.fechaNU IsNot Nothing
            Select IdValue = t.fechaNU, t.fechaNU Distinct

            Ddl_fecha_nu.DataTextField = "fechaNU"
            Ddl_fecha_nu.DataValueField = "IdValue"
            Ddl_fecha_nu.DataSource = Filtro
            Ddl_fecha_nu.DataBind()
            If IsNothing(Filtro.First.fechaNU) Then
                RV_NU.Enabled = False
            Else
                Ddl_fecha_nu.Items.Insert(0, seleccione())
                RV_NU.Enabled = True
            End If
        Catch ex As Exception
            RV_NU.Enabled = False
        End Try
    End Sub

    Protected Sub Btn_Ultima_medicion_Click(sender As Object, e As EventArgs) Handles Btn_Ultima_medicion.Click
        Try
            Dim Ult As Int16 = Ddl_fecha_S.Items.Count
            If Ult > 0 Then
                Ddl_fecha_S.SelectedIndex = Ult - 1
            End If
            Ult = Ddl_fecha_MG.Items.Count
            If Ult > 0 Then
                Ddl_fecha_MG.SelectedIndex = Ult - 1
            End If
            Ult = Ddl_fecha_PS.Items.Count
            If Ult > 0 Then
                Ddl_fecha_PS.SelectedIndex = Ult - 1
            End If
            Ult = Ddl_fecha_TOC.Items.Count
            If Ult > 0 Then
                Ddl_fecha_TOC.SelectedIndex = Ult - 1
            End If
            Ult = Ddl_fecha_nu.Items.Count
            If Ult > 0 Then
                Ddl_fecha_nu.SelectedIndex = Ult - 1
            End If
        Catch ex As Exception

        End Try
    End Sub

    Protected Sub Btn_Alternar_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles Btn_Alternar.Click
        Carga_participantes()
    End Sub

    Protected Sub Btn_Busquedad_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles Btn_Busquedad.Click
        If Txt_Filtro.Text.Trim <> "" Then
            Carga_participantes(Txt_Filtro.Text.Trim)
        End If
    End Sub
End Class